package models

import (
	"time"

	"gorm.io/datatypes"
	"gorm.io/gorm"
)

// MaSaleInfoLog [...]
type MaSaleInfoLog struct {
	ID              int64          `gorm:"autoIncrement:true;primaryKey;column:id;type:bigint;not null" json:"id" json_old:"ID"`
	AddTime         time.Time      `gorm:"column:add_time;type:datetime;not null;comment:补货时间" json:"-" json_old:"-"`
	AddTimeFormated string         `gorm:"-" json:"add_time" json_old:"AddTime"`
	Type            int            `gorm:"column:type;type:int;not null;comment:补货类型" json:"type" json_old:"Type"`
	Num             int            `gorm:"column:num;type:int;default:null;comment:补货数量" json:"num" json_old:"Num"`
	SalesID         string         `gorm:"column:sales_id;type:varchar(255);default:null" json:"sales_id" json_old:"SalesID"`
	Date            datatypes.Date `gorm:"column:date;type:date;default:null;comment:补货日期" json:"-" json_old:"-"`
	DateFormated    string         `gorm:"-" json:"date" json_old:"Date"`
	RobotName       string         `gorm:"column:robot_name;type:varchar(255);default:null" json:"robot_name" json_old:"RobotName"`
	CreatedAt       int64          `gorm:"column:created_at;autoCreateTime;type:int;size:64;comment:创建时间" json:"created_at"`
	MerchantID      string         `gorm:"-" json:"-"`
	MerchantName    string         `gorm:"-" json:"merchant_name"`
	Province        string         `gorm:"-" json:"province"`
	City            string         `gorm:"-" json:"city"`
	District        string         `gorm:"-" json:"district"`
	Location        string         `gorm:"-" json:"location"`
	UserID          string         `json:"user_id" gorm:"column:user_id;type:int;size:64;comment:用户id"`
	Username        string         `json:"username" gorm:"column:username;type:string;size:20;comment:用户名称"`
}

func (m *MaSaleInfoLog) AfterFind(tx *gorm.DB) (err error) {
	if !m.AddTime.IsZero() {
		AddTimeByte, _ := DateTime(m.AddTime).MarshalDateTime()
		m.AddTimeFormated = string(AddTimeByte)
	}
	if !time.Time(m.Date).IsZero() {
		DateByte, _ := DateTime(m.Date).MarshalDate()
		m.DateFormated = string(DateByte)
	}
	return
}

// TableName get sql table name.获取数据库表名
func (m MaSaleInfoLog) TableName() string {
	return "ma_sale_info_log"
}

// 模式自动注册
func init() {
	Models = append(Models, &MaSaleInfoLog{})
}
